// 加载模块
const express = require('express')
// 加载 login 模块
const login = require('./login')
// 加载 user 模块
const user = require('./user')
// 加载 article 模块
const article = require('./article')
// 加载解析 token 模块
const express_jwt = require('express-jwt')
// 创建app实例
const app = express()
// 解析token
app.use(express_jwt({
    // 解析字符串 (加密的那段字符串)
    secret: 'asdfghjkl123',
    // 算法(查文档) 必填项 是数组形式
    algorithms: ['HS256']
}).unless({
    // 不需要解析的路径
    path: ['/api/reguser', '/api/login']
}))
// 获取请求回来的数据
app.use(express.urlencoded({ extended: true }))
// 创建中间体 对接login
app.use('/api', login)
// 创建中间体 对接user
app.use('/my', user)
// 创建中间体 对接article
app.use('/my/article', article)
// 错误处理中间件
app.use(function (err, req, res, next) {
    if (err.name === 'UnauthorizedError') {
        res.status(401).send('身份认证失败');
    }
})
// 创建端口
app.listen(3000, () => { console.log('端口打开成功'); })